# 作业：
# 1、删除列表里所有字符串对象
# list1 = [12,11,123,1.1,[1,2,3],"郝健成"]
# for i in list1:
#     if type(i) == str: # 判断它是不是字符串对象
#         list1.remove(i)
# print(list1)
# 排除法
# list1 = [12,11,123,1.1,[1,2,3],"郝健成","abc","aa","b1"]
# list2 = [] # 创建一个空列表，用来收集所有非字符串对象
# for i in list1: # 遍历访问所有的列表内容
#     if type(i) != str: # 如果检查类型不是字符串对象
#         list2.append(i) # 那么我就把他装进非字符串列表中
# print(list2) # 最终打印非字符串的列表""

# 2、删除列表中重复的元素
list3 = [10,10,20,30,99,40,50] # 原来的列表，没有删除重复元素的
list4 = []  # 定义了一个空的列表收集不重复的元素
for i in list3: # 遍历访问原列表
    if list3.count(i) == 1: # 如果原列表的某个元素数量等于1
        list4.append(i) # 那么我就把它加入到空列表里
print(f"{list3}列表中重复的元素删除掉，最后为：{list4}") # 最终打印内容"""
l1 = [1, 2, 3, 4, 5]
# （1）在l1的元素3后面插入300
# l1.insert(3,300)
# print(l1)
# （2）删除元素2
# l1.remove(2)
# print(l1)
# （3）将5更改为500
# l1[-1] = 500
# （4）将2，3，4切片出来
# print(l1[1:4])
# （5）l1[-3:-5]的结果
# print(l1[-3:-5]) # []
# print(l1[-3:-5:-1]) # [3, 2]  ,步进是-1的倒着去
# （6）l1[-3:]的结果
# print(l1[-3:])
# 4. 通过input引导用户输入一个姓名，判断该姓名是否存在于列表names中
"""names = ["王琳琳","郑可欣","郝健成","丁莹","杨荣旭","小白"] # 定义了names列表
name = input("请输入您的姓名：") # 引导用户输入姓名
if name in names: # 判断输入的name是否在names列表中
    print(f"{name}在姓名列表中") # 如果在就输出在列表里
else:
    print(f"{name}不在姓名列表中")  # 不在就输出不在列表里"""

# 5、l = [1,2,3,[4,5]]
l = [1,2,3,[4,5]]
# （1）将4修改为400
# l[-1][0] = 400

# （2）在l的[4，5]列表中追加一个6，即使l变为[1,2,3,[4,5,6]]
# l[-1].append(6)
# print(l)

# 6、计算数值型列表的平均值是多少？
"""nums = [10,20,30,99,57,1231,123,12,312,312,3,123,12,3,1,31]
# sum 求和
# len 长度
print(sum(nums)//len(nums))"""

# 7、从数值型列表中，将索引位置为偶数的，挑选出来，放到一个新列表里
"""nums = [10,20,30,99,57,1231,123,12,312,312,3,123,12,3,1,31]
result = []
for i in range(len(nums)): # 根据nums列表的长度进行循环遍历
    if i%2==0: # 用每一个索引进行取余，如果除尽为0，那么就说明是偶数
        result.append(nums[i]) # 如果是偶数，那么就把他加到列表里
print(f"所有的索引偶数位是：{result}")"""

# 8、求出列表里最大的数是多少（不允许用sort等其他内置函数去做）,以及这个数所在的索引位置
"""nums = [10,20,30,99,57,1231,123,12,312,312,3,123,12,3,1,31]
# print(max(nums))
max_num = nums[0]  # 通过这列表创建一个比较值
for i in nums:
    if i > max_num: # 如果某一个列表成员大于了一开始定义的最大值
        max_num = i # 那么我就把这个列表成员复制给了最大值
print(f"最大值是：{max_num}")"""

# 循环10次，当循环到第五次的时候，循环结束
"""for i in range(10):
    # break
    if i==4:
        break # 跳出当前的所有循环
    print(i)"""
# 循环10次，当循环到第五次的时候，跳出这次循环
"""for i in range(10):
    if i==4:
        continue # 当代码执行到此，跳过本次循环直接进入到下次循环
    print(i)"""
# 9、学生管理系统：打印功能菜单、添加学生信息、删除学生信息、修改学生信息、显示学生信息、退出系统，并且需要接收用户的输入，
# 在根据输入内容调用相应函数实现相应功能，模板图如下
"""Student_list = []  # 收集学生姓名的
while True:
    print("欢迎来到学生管理系统：")
    print("功能菜单如下：")
    print("①、添加学生信息")
    print("②、删除学生信息")
    print("③、修改学生信息")
    print("④、显示学生信息")
    print("⑤、退出系统")
    result = input("请输入您要选择的功能选项：")
    if result == "1":
        student_name = input("请您要输入添加的学生信息：") # 要新增的学生姓名
        if student_name not in Student_list:
            Student_list.append(student_name) # 添加学生到student列表里
            print(f"添加{student_name}成功！")
        else:
            print(f"要添加的{student_name}已经存在！")
    elif result == "2":
        student_name = input("请您输入删除的学生信息：")
        if student_name  in Student_list:
            Student_list.remove(student_name)
            print(f"{student_name}删除成功！")
        else:
            print(f"{student_name}删除失败！")
    elif result == "3":
        student_name_old = input("请您输入要修改的学生信息：")
        if student_name_old in Student_list: # 判断要修改的学生信息在student列表
            new_student_name = input("请您输入新的学生信息：") # 输入新的学生姓名
            for i in range(len(Student_list)): # 遍历student_list长度
                if Student_list[i] == student_name_old: # 遍历访问每一个Student对象，如果说某一个studentname等于我输入的student
                    Student_list[i] = new_student_name # 把找到的studentname做一个替换
        else:
            print(f"{student_name_old}不存在！")
    elif result == "4":
        for index,value in enumerate(Student_list):
            print(f"第{index+1}的学生姓名为：{value}")
    elif result == "5":
        print("欢迎您下次再光临学生管理系统！再见！")
        break"""
# 10、计算传入的string中,数字,字母,空格以及其它内容的个数,并返回结果
"""result = input("请输入一组内容") # 输入一个字符串内容
int_num = 0 # 统计数字
zimu_num = 0 # 统计字母
space_num= 0 # 统计空格
other_num = 0# 统计其他
for i in result:  # 遍历这个字符串  ，每一个i是循环变量
    if i in "0123456789": # 当某一个i的值在0123456789里面，就认为是纯数字
        int_num+=1 # 纯数字就+1
    elif (i>="a" and i<='z') or (i >="A" and i <="Z"):
        # 如果说某一个i的值>="a" 并并且小于等于了"z" 就认为是小写的字符串
        # 或者是  某一个i的值>="A" 并且小于等了"Z",就认为是大写的字符串
        zimu_num+=1 # 这个时候，字符串总数量+1
    elif i in " ": # 如果传入的是空格
        space_num+=1 # 那么就空格数量+1
    else: # 其他都不符合的话
        other_num+=1 # +1
print(f"计算传入的string中,数字为：{int_num}个,字母：{zimu_num}个,空格：{space_num}个，其它内容：{other_num}个")"""
# 11、一行代码实现1~100的和
# print(sum([i for i in range(1, 101)]))
# 12、删除列表中所有重复元素，使得每个元素只出现一次
"""list5 = [1,12,2,2,5,8,7,89,4,4,7]
result_list1 = [] # 收集结果的
for i in list5:
    if i not in result_list1: # 如果说 某个值不在这个列表
        result_list1.append(i) # 加进去
print(result_list1)"""
# 13、从0~9的十个数字中随机取出4个不重复的数字组成一个字符串，将四个字符串放入列表中
# import random # 导入随机模块
# str1 = "0123456789" # 定义0~9的字符串
# str2 = "" # 结果
# result = [] # 空列表，收集四个字符串
# while True:
#     ran_num_1 = random.choice(str1) # 每次随机拿出来一个
#     if len(str2) == 4: # 如果字符串的长度大于等于4了，就是我要的结果
#         result.append(str2) # 那么就保留前四位
#         str2 = "" # 把字符串恢复成空的字符串，用于下次循环遍历、收集
#     if ran_num_1 not in str2: # 如果要随机的不在这个字符串里
#         str2+=ran_num_1  # 收集不重复的每一个数字
#     if str2[0] == "0": # 排除开头是0的情况
#         str2 = str2[1:] # 这里如果开头是0 了 ，那么就第一位不要，第二位开始我都要
#     if len(result)==4: # 如果列表长度等于4了，就全部都收集完了
#         break # 结束循环
# print(result) # 打印结果列表






"""import random
while True:
    ran_num = random.choice(str1) # 随机取出来一个数字
    if ran_num not in str2: # 如果取出来的数字不在空的字符串里
        str2+=ran_num # 加进去
    if ran_num[0] == '0': # 排除开头是0的情况
        str2 = str2[1:]
    if len(str2) >=4: # 如果说字符串的长度够四位了 ，那就说明是我想要的了
        result.append(str2[:4]) # 如果长度大于4了 就把前面的切出来
    if len(result) == 4:
        break # 结束循环
print(result)"""
# print([i for i in str2]) # 四个不同字符串组成的列表
# 14、判断输入的数字是否大于150
"""num = int(input("请输入数字"))
if num>150:
    print(f"输入的{num}大于150")
elif num==150:
    print(f"输入的{num}等于150")
else:
    print(f"输入的{num}小于150")"""

